﻿#/usr/bin/python3
# -*- coding: utf-8 -*-
import functions as func
import tkinter
from tkinter import *
import sys
import easygui as eg

colnames = ["lokallag", "lokalnavn", "kategori", "mdl_nummer", "mdl_kat", "navn", "adresse", "dato_kont", "fodselsdato", "tlf_priv", "tlf_arb", "tlf_mob", "epost", "poststed"]
coldict = {"lokallag": "Kommunenr", "lokalnavn": "Lokallag", "kategori": "Kategori", "mdl_nummer": "Medlemsnummer", "mdl_kat": "Medlemskategori", "navn": "Navn", "adresse": "Adresse", "dato_kont": "Sist betalt medlemskontigent", "fodselsdato": "Fødselsdato", "tlf_priv": "Telefon privat", "tlf_arb": "Telefon arbeid", "tlf_mob": "Telefon mobil", "epost": "Epost", "poststed": "Postnummer og -sted"}

class Page(Frame):
    def __init__(self, master, id):
        pages = {"søk": "Søk i medlemsregisteret",
                 "hoved": "Medlemsregister Trondheim SV",
                 "kontakt": "Registrert kontakt med medlemmet"}
        Frame.__init__(self, master)
        self.master.title(pages[id])

class App(tkinter.Frame):
    def __init__(self, master):
        self.frame = Page(master, 'hoved')
        self.frame.grid(row=0, column=0, columnspan=2)

        self.avslutt = Button(master, text="avslutt", command=self.quit).grid(row=1, column=0)
        #self.avslutt.pack(side='bottom')

        self.søk = Button(master, text="Søk i medlemsregisteret", command=lambda: self.startSøk(master)).grid(row=1, column=1)
        #self.søk.pack(side='left')

    def startSøk(self, master):
        self.frame.grid_forget()
        søkevindu = Søk(master)

    def quit(self):
        sys.exit(0)

class Søk:
    #Klasse for søk i medlemslistene
    def __init__(self, master):
        self.frame = Page(master, 'søk')
        master.bind("<Return>", self.søk)
        master.bind("<F3>", self.tøm)
        self.frame.grid(row=0, column=0, columnspan=2)
        self.label = []
        self.entryWidgets = []
        self.entryValues = []
        i = 0
        while i < len(colnames):
            self.label.append(Label(self.frame, text=coldict[colnames[i]] + ": ", justify=LEFT).grid(row=i+1, column=0))
            #self.label[i].bind("<Backspace>", lambda: self.tømfelt(i))
            #fill the lables with blanks
            e = Entry(self.frame)
            e.grid(row=i+1, column=1)
            e.insert(0, '')
            self.entryWidgets.append(e)
            i = i + 1

    def tømfelt(self, i):
        #kode for å tømme søkefeltet
        sys.exit()

    def søk(self, master):
        #kode for å søke i databasen
        self.query = "SELECT mdl_nummer, navn FROM sentral WHERE"
        
        # Bygg query
        for i in range(len(colnames)):
            if len(self.entryWidgets[i].get()) > 0:
                self.query = self.query + " " + colnames[i] + " LIKE " + "\"" + self.entryWidgets[i].get() + "\"" + " AND"

        self.query = self.query.rstrip(" AND")
        print(self.query)
        self.result = func.query(self.query)
        self.title = "Resultat"
        self.msg = "Velg medlemmet du vil se mer info om"
        self.choice = eg.choicebox(self.msg, self.title, self.result)
        self.choice = self.choice.lstrip("(")
        self.choice = self.choice.split(",")
        #return(choice[0])
        self.sql = "SELECT * FROM sentral WHERE mdl_nummer = '" + str(self.choice[0]) + "'"
        self.result = func.query(self.sql)
        self.result = list(self.result[0])
        self.entryWidgets = []
        self.entryValues = []
        i = 0
        while i < len(colnames):
            self.entryValues.append(self.result[i])
            self.label.append(Label(self.frame, text=coldict[colnames[i]] + ": ").grid(row=i+1, column=0))
            #self.label[i].bind("<Backspace>", lambda: self.tømfelt(i))
            e = Entry(self.frame)
            e.grid(row=i+1, column=1)
            self.entryWidgets.append(e)
            self.entryWidgets[i].insert(INSERT, self.result[i])
            i = i + 1

    def tøm(self):
        #kode for å tømme alle søkefelt
        sys.exit()

root = tkinter.Tk()

app = App(master=root)

root.mainloop()
